/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ec.socialfun.controladores;

import com.ec.socialfun.datamanager.IngresoLocalDataManager;
import com.ec.socialfun.entidades.Ciudad;
import com.ec.socialfun.entidades.TipoLocal;
import com.ec.socialfun.entidades.Zona;
import com.ec.socialfun.excepciones.RegistroLocalException;
import com.ec.socialfun.servicios.LocalesFacade;
import com.ec.socialfun.servicios.TipoLocalFacade;
import com.ec.socialfun.util.IngresoLocal;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;
import org.jboss.logging.Logger;

/**
 *
 * @author jorge
 */
@ManagedBean
@RequestScoped
public class IngresoLocalControlador extends PadreControlador {

    private static final Logger LOG = Logger.getLogger(IngresoLocalControlador.class.getName());
    @EJB
    LocalesFacade localFacade;
    @EJB
    TipoLocalFacade tipoLocalFacade;
    @ManagedProperty(value = "#{ingresoLocalDataManager}")
    private IngresoLocalDataManager ingresoLocalDataManager;

    /**
     * Creates a new instance of IngresoLocalControlador
     */
    public IngresoLocalControlador() {
    }

    @Override
    public void iniciarDatos() {
    }

    public List<SelectItem> getSelectItemCiudad() {
        List<SelectItem> lista = getSelectItemPorDefecto();
        if (getIngresoLocalDataManager().getPais() != null && getIngresoLocalDataManager().getPais().getPaCodigo() != null) {
            List<Ciudad> listaCiudad = ciudadFacade.recuperaPorPais(getIngresoLocalDataManager().getPais());
            for (Ciudad ciudadTmp : listaCiudad) {
                lista.add(new SelectItem(ciudadTmp, ciudadTmp.getCiNombre()));
            }
        }
        return lista;
    }

    public List<SelectItem> getSelectItemZona() {
        List<SelectItem> lista = getSelectItemPorDefecto();
        if (getIngresoLocalDataManager().getCiudad() != null && getIngresoLocalDataManager().getCiudad().getCiCodigo() != null) {
            List<Zona> listaZona = zonaFacade.recuperaPorCiudad(getIngresoLocalDataManager().getCiudad());
            for (Zona zonaTmp : listaZona) {
                lista.add(new SelectItem(zonaTmp, zonaTmp.getZoNombre()));
            }
        }

        return lista;
    }

    public List<SelectItem> getSelectItemTipoLocal() {
        List<SelectItem> lista = getSelectItemPorDefecto();
        List<TipoLocal> listaTipoLocal = tipoLocalFacade.findAll();
        for (TipoLocal tipoLocalTmp : listaTipoLocal) {
            lista.add(new SelectItem(tipoLocalTmp, tipoLocalTmp.getTiLoNombre()));
        }
        return lista;
    }

    public void guardarLocal() {
        try {
            localFacade.registrarLocal(getIngresoLocalDataManager().getIngresoLocal());
            getIngresoLocalDataManager().setIngresoLocal(new IngresoLocal());
            getIngresoLocalDataManager().setPais(null);
            getIngresoLocalDataManager().setCiudad(null);
            this.mensajeExitoso(" Local Registrado Correctamente");
        } catch (RegistroLocalException e) {
            LOG.error(" Error al crear Local " +e);
            this.mensajeError(" Error al guardar local ");
        }
    }

    public void limpiarCiudad() {
        getIngresoLocalDataManager().setCiudad(null);
    }

    public IngresoLocalDataManager getIngresoLocalDataManager() {
        return ingresoLocalDataManager;
    }

    public void setIngresoLocalDataManager(IngresoLocalDataManager ingresoLocalDataManager) {
        this.ingresoLocalDataManager = ingresoLocalDataManager;
    }
}
